1) Field of the Invention
The field of invention relates to electronic design automation and, more specifically, to automated methods and systems for selecting and procuring electronic components used in circuit and chip designs.
2) Background
The electronics industry produces ever more advanced circuit designs with the assistance of continuously improving integrated circuits, design tools and verification tools. Chip designs may contain tens or hundreds of thousands of gates per chip, and will shortly be in the range of millions of gates per chip.
Electronic systems have traditionally been built using combinations of stand-alone, individually packaged chips, which are assembled on printed circuit boards (PCBs) and connected together to obtain the desired functionality.
Market demands continue to push designers to develop printed circuit board designs more rapidly and efficiently. A recent trend to increase design speed and efficiency involves the re-use or recycling of electronic circuit blocks or subsystems, which are alternatively referred to as “virtual component blocks” or “IPs” (an acronym for “Intellectual Properties,” which denotes the proprietary nature of these pre-packaged circuit blocks).
Once the design for a virtual component block has been tested and verified, it can be re-used in other applications which may be completely distinct from the application which led to its original creation. For example, a subsystem for a cellular phone ASIC may contain a micro-controller as well as a digital signal processor and other components. After the design for the cellular phone subsystem has been tested and verified, it could be re-used (as a virtual component block) in, for example, an automotive application. Design reuse of virtual component blocks allows a designer to complete a design much faster than building the entire design from scratch, and avoids the need for debugging, testing and verification of the subsystems embodied in the virtual component block.
Despite the relatively advanced techniques for creating printed circuit board designs, the methods for procuring and purchasing electronic components for completed designs have remained relatively archaic. At the same time, increased competition has resulted in growing pressures to reduce time-to-market with new products, because the first company to come out with a new type of product typically has an advantage over its competitors. Even short delays in reaching market can have a significant impact in term of product success.
Presently used methods of searching for and managing component information are cumbersome, inefficient and problematic. A significant amount of valuable engineering time is lost in searching for data on electronic components. Indeed, it has been estimated that at least thirty percent, and perhaps as much as eighty-five percent, of an engineer's time is spent not designing, but rather searching for, analyzing, and following up on electronic components.
Engineers traditionally have searched for parts by perusing data sheets and component catalogs, and by placing phone calls to suppliers or distributors to obtain component information, catalogs or brochures. Catalogs are bulky, take up space, and can be inefficient to peruse. Further, catalogs by their nature are static, not dynamic; thus, changes or additions to a supplier or distributor's products are not immediately reflected in the catalog, but are generally conveyed to a designer by mail. Not only does this notification process take time, but mail service is not entirely reliable, and such changes or additions may never reach the designer. If they do reach the designer, they can easily be misplaced, misfiled or lost. Further, component price data typically changes frequently, and such price changes must typically be communicated by mail, like any other update. Oral information communicated from a supplier to an engineer by telephone is inherently unreliable as well. The engineer may not understand the information, or may write it down incorrectly, further, there is no assurance that the person supplying that information is properly trained or has the correct data on hand to communicate.
In order to make the availability of component information more convenient, a number of electronic parts manufacturers, suppliers and distributors currently make component information available through the Internet, generally by placing such information on their website. However, searching the Internet for individual parts can be time-consuming and tedious. Further, current search engines and methodologies are inefficient and do not cover the entire web space, and may thus return search results that do not include one or more websites that may offer parts that a designer could beneficially use in a design. In addition, parts data on supplier's and distributor's websites is often presented on-screen in the same fashion as an engineer would see it in a catalog or other printed material, thereby conferring no content advantage over printed catalogs.
After a designer has managed to collect component data from these various disparate sources, the information must be managed in such a manner that allows for selection of specific components. When this component data is gathered from a multitude of sources, it can be difficult to organize it in a useful way. Further, it is time-consuming and inefficient to manually create a matrix or other analytical aid comparing multiple parts in order to facilitate selection.
The component management problem does not end with parts selection. After the engineer has chosen an electronic component, it then must be referenced in the circuit design schematic. Although there are many programs commercially available for schematic generation and capture, such programs typically rely on the manual input of symbol and footprint data. For example, if an engineer chooses an operational amplifier as a component in a larger design, he or she must manually create a symbol for an operational amplifier in the schematic program. Generally schematic programs are graphically-oriented. Thus, the engineer may select an operational amplifier symbol within the schematic program and move it into a circuit modeled within the schematic program. However, information associated with each symbol is typically generic. Such information is usually limited to identification of the type of part represented by the symbol, and does not contain specific data regarding the specific part selected by the engineer, as the schematic program has no way of knowing which specific part will be used. Specific component information is usually input into the schematic program manually, which is a time-consuming and tedious task.
Pricing and procurement are additional aspects of component management that are currently inefficient and time-consuming for designers. The parts used in a circuit design are typically listed in a bill of materials (BOM) prior to manufacturing the design. The BOM generally contains information regarding the specific parts to be used, and their quantities. Before purchasing parts, the BOM is typically placed through an authorization process, where a decision is made whether use of the parts on the BOM is economical. Many companies have preferred suppliers or preferred distributors from which discounts are obtained, so one or more components that the designer has selected during the design process may not be preferred components for the company. To save on component costs, the designer is often required to change the design to utilize the preferred components. Such changes can easily result in additional design time and rework. If the designer is allowed to use a new part, it must first be approved, but the approval process can be cumbersome, bureaucratic and lengthy, adding to the overall time to market.
Other aspects of managing electronic component data include documentation and configuration control of the components used in the design. When there are several design iterations, part changes, or other alterations, as inevitably happens during a long and complex design process, documentation of the details of each such change is often not a high priority of the engineering team, especially where other pressures relating to completion of the design absorb the focus of the engineering team. Further, time spent by engineers on configuration control is essentially wasted from the standpoint of producing a working design. Thus, documentation and configuration control lead to inefficiencies in the design process, and in any event are viewed by many engineers as tedious, time-consuming tasks.
Another problem with managing information relating to electronic components is inaccuracy of parts data brought into the design schematic. As discussed above, a circuit designer typically combs through a multitude of sources for information regarding electronic components, such as data sheets, parts catalogs, supplier websites, and trade show brochures, and also may make telephone calls to suppliers to obtain parts information. However, most of this information is not available in a form of maximum usefulness to the circuit designer. After the designer selects a part, specific data regarding that part must be transcribed into a form usable by the engineer's schematic design tools, which, as previously noted, involves substantial manual input of data. Manual entry of this data is inefficient and lends itself to typographical errors on entry, particularly among engineering designers who may not possess sophisticated typing or data entry skills. Further, the prospect of errors is even more substantial when the parts data is not obtained from reliable sources such as data sheets and parts catalogs, but rather from less reliable sources, such as hurried notes scribbled during a telephone call with a supplier or an e-mail message from another designer. Errors caused by clerical mistakes or other human error do not remain isolated, but generally create a ripple effect in the design as a whole.
The entry of inaccurate part data may lead to redesign and rework of the original design. The entry of incorrect data for a specific component may affect not only other components directly connected with it, but also other components both upstream and downstream from it. For example, other designers working on other parts of the design may rely on that incorrect data, resulting in the inadvertent introduction of errors into other portions of the design. Design changes, even small ones, may also result in significant, unexpected downstream effects if they are not properly entered and documented.
Another source of errors relating to component information management is incorrect part identification. Typically, parts used in a circuit design are identified and controlled by a unique part identifier. If the part identifier is incorrectly entered in the schematic, or the part has been changed by a designer without changing the identifier in the schematic, the wrong part will be purchased. If such an error is not caught in time, then the procurement process must begin again with the proper part after the incorrect part has been delivered, adding what may be an unacceptable amount of delay to projects with a very tight time to market. Similarly, it is possible that the designer may enter the correct part number for a component, and yet not enter the correct footprint data. Incorrect footprint data can lead to incorrect pin numbers, incorrect pin spacing, the wrong package size, and the wrong package technology (e.g. surface mount vs. through-hole packaging). Erroneous footprint data can force a complete redesign of the printed circuit board if inadequate room is left on the printed circuit board for a key component. It is possible for these errors to appear cumulatively, adding to the burden of creating a working product. Such errors require time to resolve and can significantly increase the time to market of the overall design. The time and expense to redesign is multiplied when rework is required—that is, when a prototype or actual product under construction must be physically rebuilt due to design changes.
Another problem with the current component procurement and management process is the unnecessary introduction of new, redundant components into a company's materials handling system. Many companies have software for material resource planning (MRP). Most MRP systems are designed for manufacturing and purchasing functions, but not for engineering design. These MRP systems typically contain a great number of parts identified by part number, and are utilized with the intent of speeding up approval, purchasing and procurement of parts. However, because MRP systems generally do not include the type of detailed specification data that an engineer requires to perform design, engineers are not readily able to search the data in MRP systems to find appropriate parts. For example, the designer may require a resistor having a resistance of 50 ohms. Current MRP systems generally would not allow the engineer to search for and find such a part, based on engineering-based criteria like resistance. Thus, the designer does not have easy visibility into all of the standard parts currently utilized by a company. As a result, the designer may introduce a new part, rather than reuse existing parts. This is wasteful from a business standpoint, because studies have shown that a significant percentage (e.g., from 20% to 40) of a company's inventory may be duplicate parts. When new parts are selected and chosen by an engineering design team, but existing parts in inventory would perform the job just as well, additional inventory is created, additional cost is incurred, and inefficiency results. Studies have shown that it can be very costly (e.g., up to $30,000) to introduce a new part into an inventory system, and to maintain a part in an inventory system can be quite costly as well (e.g., on the order of $10,000 per year). Further, approval and qualification of new parts and new suppliers is time-consuming and tedious. Thus, the failure for an engineer to use pre-approved parts in the company's MRP system results in significant cost increases in manufacturing, and thus higher product cost to the consumer.
Another problem related to component procurement is prototype delay due to out-of-stock parts. When selecting components for electronic design, engineers typically consider lead time as a factor. If the time to market goal is short, and several components are comparable, the one that can be supplied in the shortest time is typically chosen. Short lead times pose minimal threats to overall time-to-market schedules, and are safer engineering choices. However, lead times for components can change significantly with time. That is, the lead time quoted to an engineer at the beginning of a design project may be substantially different months later, when the part is to be purchased. This may occur for a variety of reasons, including, for example, an increase in demand for the component, a shortage of raw material utilized to fabricate the component, or a disaster such as earthquake or fire striking the facility of a component's manufacturer. Thus, for example, a part with a quoted lead time of two weeks at the time of its selection could have a 30-week lead time at the time of manufacturing. It is also possible for designers, particularly inexperienced ones, simply to fail to consider the lead time of a given component when creating a design, thus potentially resulting in surprises during manufacturing when such components are not available. Changes in lead time often cause changes in the schematic, because new components and different components may have to be chosen to overcome lead time difficulties. Such schematic changes and design changes are inefficient, consume time, delay product introduction, and introduce additional problems as described above.
It would advantageous to improve access by designer's to useful component information from otherwise disparate sources. It would further be advantageous to provide component information in a form that is of maximum usefulness to the circuit designer. It would also be advantageous to provide component information that is reliable and up-to-date, and that changes or updates automatically when changes to a circuit design are made. It would further be advantageous to provide a method and system for efficiently procuring components used in circuit designs.